package com.weaving.monitor.mapper;

import com.weaving.monitor.entity.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 系统用户数据访问层接口
 * 
 * 功能说明：
 * 1. 定义与sys_user表交互的数据库操作方法
 * 2. 提供通过用户ID查询真实姓名的功能
 * 
 * 注解说明：
 * - @Mapper: MyBatis注解，标识这是一个Mapper接口
 * 
 * 方法说明：
 * - selectById: 根据用户ID查询系统用户信息
 * 
 * @author 系统开发团队
 * @version 1.0
 * @since 2024-01-01
 */
@Mapper
public interface SysUserMapper {

    /**
     * 根据用户ID查询系统用户信息
     *
     * 功能说明：
     * 1. 通过用户ID查询用户的真实姓名等信息
     * 2. 用于获取员工的实际姓名显示
     *
     * 参数说明：
     * - id: 用户ID
     *
     * 返回值说明：
     * - SysUser: 系统用户信息对象，包含真实姓名
     * - null: 如果未找到对应的用户记录
     *
     * SQL说明：
     * - 查询条件：id = #{id}
     * - 返回字段：id, realname, username, email, phone
     *
     * @param id 用户ID
     * @return 系统用户信息对象
     */
    SysUser selectById(@Param("id") String id);

    /**
     * 根据用户ID列表批量查询系统用户信息
     *
     * 功能说明：
     * 1. 通过用户ID列表批量查询用户的真实姓名等信息
     * 2. 用于批量获取员工的实际姓名显示
     *
     * 参数说明：
     * - ids: 用户ID列表
     *
     * 返回值说明：
     * - List<SysUser>: 系统用户信息对象列表
     *
     * SQL说明：
     * - 查询条件：id IN (ids)
     * - 返回字段：id, realname, username, email, phone
     *
     * @param ids 用户ID列表
     * @return 系统用户信息对象列表
     */
    List<SysUser> selectByIds(@Param("ids") List<String> ids);
} 